
public class ShellSort {
	public static void main(String args[]){
		int [] sql= {0,2,4,5,6,3,1,7,8};
		int delta[]	={4,2,1};	
		ShellSort is2 =new ShellSort();
		is2.Sort(sql,delta);
		
//		for(int i=1;i<sql.length;i++){
//			System.out.println(sql[i]);
//		}
		
		
	}
	
	void ShellInsert(int [] sql, int di){
	int i,j;
		for(i=1+di;i<sql.length;i++)
			if(sql[i]<sql[i-di]){ 
				sql[0]=sql[i];j=i-di;
				
				while((j>0)&&(sql[0]<sql[j])) {
					sql[j+di]=sql[j];
					j=j-di;}
				sql[j+di]=sql[0];
			}
	

	}
	
	void Sort(int []sql,int delta[]){
		for(int i=0;i<delta.length;i++){
			ShellInsert(sql,delta[i]);

			for(int j=0;j<sql.length;j++){
				System.out.print(sql[j]+" ");
			}
			System.out.println();
		}
	}
	
}
